python绘图要求出现中文(针对matplotlib和seaborn两种库实现中文显示标题、坐标轴标题、图例) 您所在的位置:网站首页 解决Mac系统下Matplotlib中SimHei中文字体缺失报错的问题 python绘图要求出现中文(针对matplotlib和seaborn两种库实现中文显示标题、坐标轴标题、图例)

python绘图要求出现中文(针对matplotlib和seaborn两种库实现中文显示标题、坐标轴标题、图例)

2024-07-12 10:59| 来源: 网络整理| 查看: 265

文章目录 所遇问题情况一: matplotlib库绘图显示中文方式一方式二方式三方式四方式五 情况二:seaborn库绘图显示中文

所遇问题

使用Python绘图时,遇到中文显示不出来,显示的是方框形式: 在这里插入图片描述

且出现如下警告: 在这里插入图片描述 总结,Python绘图针对不同绘图库的不同解决显示中文情况,如下两种情况:

情况一: matplotlib库绘图显示中文 方式一 from pylab import mpl mpl.rcParams["font.sans-serif"] = ["SimHei"] # 设置显示中文字体 宋体 mpl.rcParams["axes.unicode_minus"] = False #字体更改后,会导致坐标轴中的部分字符无法正常显示,此时需要设置正常显示负号 方式二

下面这种方式,中文显示为宋体,英文显示为Times New Roman

import matplotlib.pyplot as plt from matplotlib import rcParams config = { "font.family": 'serif', "mathtext.fontset": 'stix', # matplotlib渲染数学字体时使用的字体,和Times New Roman差别不大 "font.serif": ['SimSun'], # 宋体 'axes.unicode_minus': False # 处理负号,即-号 } rcParams.update(config) 方式三

下面这种方式,不需要设置处理负号问题,注意需要再xlabel/ylabel等需要设置中文的位置加上fontproperties=my_font属性,这里的f是小写!!

from matplotlib import font_manager my_font=font_manager.FontProperties(fname="C:\Windows\Fonts\simsun.ttc",size=12) # Data for plotting t = np.arange(-1.0, 1.0, 0.01) s = 1 + np.sin(2 * np.pi * t) plt.plot(t, s) plt.xlabel('时间 (s)', fontproperties=my_font)# 设置 x轴名称字体 注意这里的fontproperties中f是小写!! plt.ylabel('voltage (mV)') plt.title('简单的标题', fontproperties=my_font)# 设置 标题字体 plt.show() 方式四 import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimSun'] #宋体 # 等价于:plt.rcParams['font.family']=['SimHei'] plt.rcParams['axes.unicode_minus'] = False 方式五 import matplotlib matplotlib.rc("font",family='SimSun') plt.rc('axes', unicode_minus=False) 或者: font = {'family' : 'SimSun', 'size' : '12'} # 设置 字体 plt.rc('font', **font) # 解决中文字体下坐标轴负数的负号显示问题 plt.rc('axes', unicode_minus=False) 情况二:seaborn库绘图显示中文

当使用seaborn绘图时,在我使用情况一中的方式一、二、三、四、五让其显示中文时,是失效的,应该 使用sns.set方法,如下代码:

import pandas as pd import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline tips = pd.read_csv('./seaborn-data-master/tips-zh.csv') rc = {'font.sans-serif': 'SimHei', 'axes.unicode_minus': False} #设置字体样式 字体负号显示 sns.set(context='notebook', style='ticks', rc=rc) #sns设置 sns.catplot(x="日期", y="总账单", data=tips) plt.show()

当我遇到中文不显示,且出现“missing from current font”警告时,我就上网找方法解决,我找到了三、四个方法,还是显示不出来,然后突然想到,我用的是整体的库是seaborn画的图,可能其中出现了matplotlib中的plt等等方法,所以我解决方法采用的却是情况一针对matplotlib库的,Oh my god!!! 当我换成针对情况二的seaborn库的解决方法时就搞定了,哈哈哈。

注意:找解决方法的时候,一定注意使用的是那种绘图库,不可张冠李戴啊!!!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有